package com.jt.service;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.alibaba.druid.util.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jt.mapper.ItemCatMapper;
import com.jt.mapper.ItemMapper;
import com.jt.pojo.ItemCat;
import com.jt.util.ObjectMapperUtil;
import com.jt.vo.EasyUITree;

import redis.clients.jedis.Jedis;

@Service
public class ItemCatServiceImpl implements ItemCatService {
	@Autowired
	private ItemCatMapper itemCatMapper;
//	@Autowired
//	private Jedis jedis;

	@Override
	public String findItemCatName(Long id) {
		return itemCatMapper.findItemCatName(id);
	}

	public List<ItemCat> findItemCatList(Long parentId){
		QueryWrapper<ItemCat> queryWrapper=new QueryWrapper<>();
		queryWrapper.eq("parent_id", parentId);
		return itemCatMapper.selectList(queryWrapper);
	}
	
	//从数据库查询
	@Override
	public List<EasyUITree> findEasyUITreeList(Long parentId) {
		List<ItemCat> itemCatList=findItemCatList(parentId);
		List<EasyUITree> treeList=new ArrayList<>();
		for (ItemCat itemCat : itemCatList) {
			String state=itemCat.getIsParent()?"closed":"open";
			EasyUITree easyUITree=new EasyUITree()
					.setId(itemCat.getId())
					.setText(itemCat.getName())
					.setState(state);
			treeList.add(easyUITree);
		}
		return treeList;
	}

//	//从缓存查询
//	@Override
//	public List<EasyUITree> findEasyUITreeCache(Long parentId) {
//		List<EasyUITree> treeList=new ArrayList<>();
//		String key="ITEM_CAT_"+parentId;
//		String result = jedis.get(key);//从缓存中取数据，JSON格式
//		if (StringUtils.isEmpty(result)) {
//			treeList=findEasyUITreeList(parentId);//如果缓存中没有就从数据库中取数据
//			String value=ObjectMapperUtil.toJSON(treeList);//同时把从数据库中查询出来的数据转换成JSON保存到缓存中
//			jedis.set(key, value);
//			System.out.println("查询后台数据库");
//		}else {
//			treeList=ObjectMapperUtil.toObject(result, treeList.getClass());//如果缓存中有数据就从缓存中取数据
//			System.out.println("查询Redis缓存");
//		}
//		return treeList;
//	}

	
}
